#leetcode题目27：删除元素
#难度：简单
#时间复杂度：O(n)
#空间复杂度：O(1)
#方法：双指针

from typing import List
class Solution:
    def removeElement(self, nums: List[int], val: int) -> int:
        i,last=0,len(nums)-1
        while i<=last:
            if nums[i]==val:
                nums[i],nums[last]=nums[last],nums[i]
                last-=1
            else:
                i+=1
        return last+1




#测试数据
nums=[3,2,2,3]
val=3
#预期输出：2,
solution=Solution()
print(solution.removeElement(nums,val))

nums=[0,1,2,2,3,0,4,2]
val=2
#预期输出：5,
solution=Solution()
print(solution.removeElement(nums,val))





